您好,欢迎来到达州工业云! 平台首页 企业驾驶舱 帮助中心 企业登录 企业注册

HI,欢迎使用达州工业云平台!

账号必须大于2位

创新资源平台
服务平台首页>专利库>专利详情

基于计算机视觉技术的多点触摸屏系统实现方法

  • 申请号:CN201210051470.1 申请公布号: CN102591533A
  • 申请日: 2012-03-01 申请公布日: 2012-07-18
  • 申请(专利权)人: 专利代理机构: 桂林市持衡专利商标事务所有限公司
  • 分类号:G06F3/042

专利介绍

本发明公开一种基于计算机视觉技术的多点触摸屏系统实现方法与装置,系统装置由3组摄像机、1个图像处理装置和1个普通显示屏组成。3组摄像机的输出端都接在图像处理装置上。在显示屏的左右两端各放置一组指向显示屏边框的水平摄像机,当手指进入摄像机取景范围时,可根据手指指尖与显示屏距离判断是否产生触摸。显示屏前方放置一组指向显示屏且整个显示屏处于其取景范围内的垂直摄像机,当产生触摸时,可根据该摄像机拍摄的图像获取指尖点位置,同时对手指进行跟踪。图像处理装置通过对摄像机采集的图像进行处理,得到指尖触摸点的位置和手指动作信息,转换为相应的指令完成触摸操作。
1.基于计算机视觉技术的多点触摸屏系统实现方法,其特征是包括如下步骤:(1)在显示屏的左右两端各放置一组指向显示屏边框的水平摄像机来获取指尖触摸的动作图像,在显示屏前方放置一组指向显示屏且整个显示屏处于其取景范围内的垂直摄像机来指尖触摸点的位置图像,2个水平摄像机和1个垂直摄像机的输出端均与图像处理装置的输入端相连;(2)图像处理装置预先对置于显示屏前方的垂直摄像机进行系统标定,获得成像平面坐标与显示屏平面坐标的映射关系;(3)图像处理装置发出控制信号启动2个水平摄像机,在系统初始化时显示屏左右两端的水平摄像机记录下显示屏边框在图像中的位置;当手指进入水平摄像机取景范围后,采用背景差分法和肤色分割算法获取手指的轮廓,根据手指指尖与显示屏边框的距离判断是否产生触摸;(4)当产生触摸时,图像处理装置发出控制信号启动垂直摄像机,并采用背景差分法和肤色分割算法获取手指的轮廓,并通过基于向量的实时指尖定位算法实时准确地获取指尖的像素点;(5)图像处理装置根据成像平面坐标与显示屏平面坐标的映射关系,将指尖的像素点转换为显示屏对应的坐标;(6)图像处理装置根据指尖坐标和指尖停留时间进行点击检测,若符合点击条件,则转换为相应的指令完成触摸操作;若不符合,则触摸操作未完成,采用卡尔曼滤波器对指尖点进行跟踪,预测下一帧图像指尖点位置;(7)在下一帧图像中以预测的指尖点为中心点划出感兴趣区域进行步骤(4)肤色分割和指尖定位,不断循环直至触摸操作结束。
2.根据权利要求1所述基于计算机视觉技术的多点触摸屏系统实现方法,其特征是步骤(4)中所述基于向量的实时指尖定位算法具体步骤如下:(a)确定邻域半径r的值:该邻域半径r的取值需大于手指在图像中的宽度、且小于手指在图像中的长度,即 finger . width × image . width screen . width < r < finger . length × image . length screen . length ]]>1上式中,finger.width和finger.length分别为手指的宽度和长度,image.width和image.length分别为图像宽和长的像素点数,screen.width和screen.length分别为触摸屏幕的宽度和长度;(b)计算人手区域轮廓闭合曲线S中各点的弯曲度,得到弯曲度的集合C={Ci,i=1,2,...,n},其中人手区域轮廓闭合曲线S中的某一点Pi的弯曲度Ci为 ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>2上式中,Pi-r和Pi+r是点Pi的r领域集合Ωi上的2个端点,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="281"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="132"/>和向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="100"/>的外积,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="150"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="132"/>的模;(c)在集合C中取|Ci|值最小且为正的元素,该元素所对应的点Pi即为指尖点;(d)设手指的宽度差阈值为常数d,在集合C中取出点Pi的邻域外符合条件|Ck|<|Ci|+d且为正的所有元素,得到新的集合Cr。(e)根据步骤(d)得到的结果,若在Cr对应的点集合中有连通集合,则保留连通集合中|Ci|值最小的点,去除其余的点;最后剩余的点即为所有手指的指尖点。
3.根据权利要求2所述基于计算机视觉技术的多点触摸屏系统实现方法,其特征是步骤(a)中邻域半径r值取手指在图像中的宽度和长度的中间值。
4.根据权利要求1所述基于计算机视觉技术的多点触摸屏系统实现方法,其特征是步骤(6)中所述采用卡尔曼滤波器对指尖点进行跟踪,预测下一帧图像指尖点位置的具体步骤为:采用ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="379"/>进行指尖位置的预测,在下一帧图像中以预测的指尖点为中心点划出ROI区域进行肤色分割和指尖定位,随后将获取的准确手指指尖坐标作为系统状态向量Zk,代入ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="568"/>进行滤波器校正,校正后再进行指尖位置的预测,不断循环直至触摸操作结束;上述两式中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="57"/>即为预测的状态向量,A为状态转移矩阵,Xk-1为时刻k-1的系统状态向量,B为控制矩阵,Uk为控制向量,Xk为时刻k的系统状态向量,Kk为卡尔曼增益矩阵,Zk为时刻k的系统状态测量向量,H为观测矩阵。
5.根据权利要求1所述基于计算机视觉技术的多点触摸屏系统实现方法,其特征是步骤(3)和(4)中所述采用背景差分法和肤色分割算法获取手指的轮廓的具体步骤如下:(a)在手指进入摄像区域前,水平摄像机和垂直摄像机首先存储若干图片并做灰度转换,随后计算其均值作为背景灰度图像,即 G bkimg ( x , y ) = avg ( Σ i = 1 n G i ( x , y ) ) ]]>3上式中,Gi为存储的第i张图片,n为存储的图片数量,Gbkimg为得到的背景灰度图像;(b)选择在YCbCr彩色空间上建立合适的肤色模型,对手指区域进行肤色分割;即(b.1)将水平摄像机和垂直摄像机或得的RGB图像转换为YCbCr图像,其中RGB空间到YCbCr空间的转换公式为: Y = 0.299 × R + 0.587 × G + 0.114 × B Cr = 0.713 × ( R - Y ) + δ Cb = 0.564 × ( B - Y ) + δ ]]>4上式中,Y、Cb、Cr为YCbCr空间的亮度分量、蓝色色度分量、红色色度分量值;R、G、B为RGB空间的红色、绿色、蓝色分量值;ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="542"/>(b.2)利用式4中得到的Y分量与式3得到的背景灰度图像作差后,得到背景差分值D(x,y),即D(x,y)=abs(Yftimg(x,y)-Gbkimg(x,y))xa0xa0xa0xa0xa0xa05上式中,Yftimg为前景图像的Y分量,D(x,y)为背景差分值;(b.3)根据式4和式5建立YCbCr彩色空间肤色检测模型为: result = 1 , Cr / Cb ∈ [ Min , Max ] · D > T 0 , otherwise ]]>6上式中,Cb、Cr为YCbCr空间的蓝色色度分量、红色色度分量值;D为背景差分值;常数Min、Max为Cr与Cb比值的最大和最小阈值,常数T为背景差分阈值;该肤色检测模型通过设定Cr和Cb比值的最大和最小阈值以及背景差分阈值来判定肤色区域;当result为1时,表示该像素点为肤色区域;当result为0时,表示为非肤色区域。
6.根据权利要求5所述基于计算机视觉技术的多点触摸屏系统实现方法,其特征是:还进一步包括根据式7对背景进行自动更新的步骤,Iacc(x,y)=(1-α)×Iaxx(x,y)+α×Iftimg(x,y)xa0xa0xa0xa0xa07上式中,Iacc为更新后的背景图像,Iftimg为前景图像,α为更新常系数。
7.基于计算机视觉技术的多点触摸屏系统装置,其特征在于:其主要由显示屏、2个水平摄像机、1个垂直摄像机和图像处理装置组成;其中2个水平摄像机分别放置在显示屏的左右两端、并同时指向显示屏边框;垂直摄像机则放置在显示屏的前方、并指向显示屏且整个显示屏处于其取景范围内;2个水平摄像机和1个垂直摄像机的输出端均与图像处理装置的输入端相连;上述图像处理装置包括系统标定模块、触摸判断模块、触摸控制点提取模块、坐标转换模块、点击检测模块和卡尔曼跟踪模块;其中2个水平摄像机的输出端与触摸判断模块的输入端相连;垂直摄像机的输出端和触摸判断模块的输出端分别连接触摸控制点提取模块的2个输入端;触摸控制点提取模块的输出端和系统标定模块的输出端分别连接坐标转换模块的2个输入端;坐标转换模块的输出端与点击检测模块的输出端相连;点击检测模块的输出端分为两路,一路经由卡尔曼跟踪模块接至触摸控制点提取模块的又一个输入端,另一路作为基于计算机视觉技术的多点触摸屏系统装置的输出端。
8.根据权利要求7所述基于计算机视觉技术的多点触摸屏系统装置,其特征在于:所述触摸判断模块包括水平摄像机背景差分单元、水平摄像机肤色分割单元和触摸判断单元;水平摄像机背景差分单元的输入端连接2个水平摄像机的输出端,水平摄像机背景差分单元的输出端经由水平摄像机肤色分割单元与触摸判断单元的输入端相连,触摸判断单元的输出端连接触摸控制点提取模块。
9.根据权利要求7所述基于计算机视觉技术的多点触摸屏系统装置,其特征在于:所述触摸控制点提取模块包括垂直摄像机背景差分单元、垂直摄像机肤色分割单元和指尖定位单元;垂直摄像机背景差分单元的输入端连接垂直摄像机的输出端,垂直摄像机背景差分单元的输出端经由垂直摄像机肤色分割单元与指尖定位单元的输入端相连,指尖定位单元的输出端连接坐标转换模块。技术领域
本发明涉及触摸屏技术领域,具体涉及一种基于计算机视觉技术的多点触摸屏系统实现方法与装置。
背景技术
触摸屏作为一种最新的计算机输入设备,是目前最简单、方便、自然的一种人机交互方式。它赋予了多媒体以崭新的面貌,是极富吸引力的全新多媒体交互设备。在目前的市场应用中,触摸屏主要有电阻式、电容式、表面声波式、红外线式触摸屏四大类型。电阻式、电容式触摸屏由于成本原因,只能应用在中小尺寸触摸屏中。红外线式触摸屏虽然价格低廉,响应快,但是分辨率低,易受到外界强光干扰。表面声波式触摸屏解决了红外线式触摸屏的问题,但容易受灰尘和水滴、油污等影响。随着图像显示技术的发展以及人类对信息交换的方便性及舒适性的要求越来越高,市场对大尺寸、价格不高且交互自然的触摸屏需求越来越强烈。基于计算机视觉技术的触摸屏有着价格低廉、分辨率高、可以利用任何平面作为触摸平面、不易受外界环境的干扰、应用范围广等优势,因此是触摸屏未来发展的方向。但是目前市场出现的相关技术的触摸屏都对背景界面要求较高,只能是一些简单的黑白界面,或者要求有配套的触摸笔或触摸手套,不能自然友好地实现人机交互,使用场合非常有限。同时,现有的相关技术触摸屏在同一时间仅能够识别一个触点,实现的动作信息比较单调。随着触摸技术的广泛应用,多点触控逐渐受到关注。多点触控能够同时接收来自屏幕上多个点的输入信息,使得动作信息大大增加,令触摸操作更加简洁方便。但是当前的触摸屏技术大多都不能识别多个触点,因此限制了多点触控技术的发展。公告号为CN1912816A的中国发明专利公开了“一种基于摄像头的虚拟触摸屏系统”,该系统首先通过两个或两个以上摄像头从不同视角指向显示屏,并确定两个摄像头的成像平面与显示屏之间的映射关系;然后通过图像差分得到粗略的人手区域并建立肤色模型,以获得灰度图像和粗略指尖位置;之后再使用重要的采样粒子滤波器对单个手指进行跟踪以获得手指轮廓曲线,并根据指尖所在控制点得到指尖的位置;最后根据两帧图像中的指尖点在显示屏上的对应位置确定指尖点击动作。然而上述系统由于上述系统是通过粒子滤波器算法来计算指尖的位置及对指尖点进行跟踪,以实现在普通显示屏的触摸功能,因此只能对单个手指进行跟踪和指尖提取,不能实现多点触摸功能。
发明内容
本发明所要解决的技术问题是提供一种基于计算机视觉技术的多点触摸屏系统实现方法与装置,其能够使任意显示屏具有多点触摸的功能,同时具有成本低、性能稳定、可用于大尺寸屏幕等优点。为解决上述问题,本发明是通过以下方案实现的:一种基于计算机视觉技术的多点触摸屏系统实现方法,包括如下步骤:(1)在显示屏的左右两端各放置一组指向显示屏边框的水平摄像机来获取指尖触摸的动作图像,在显示屏前方放置一组指向显示屏且整个显示屏处于其取景范围内的垂直摄像机来指尖触摸点的位置图像,2个水平摄像机和1个垂直摄像机的输出端均与图像处理装置的输入端相连;(2)图像处理装置预先对置于显示屏前方的垂直摄像机进行系统标定,获得成像平面坐标与显示屏平面坐标的映射关系;(3)图像处理装置发出控制信号启动2个水平摄像机,在系统初始化时显示屏左右两端的水平摄像机记录下显示屏边框在图像中的位置;当手指进入水平摄像机取景范围后,采用背景差分法和肤色分割算法获取手指的轮廓,根据手指指尖与显示屏边框的距离判断是否产生触摸;(4)当产生触摸时,图像处理装置发出控制信号启动垂直摄像机,并采用背景差分法和肤色分割算法获取手指的轮廓,并通过基于向量的实时指尖定位算法实时准确地获取指尖的像素点;(5)图像处理装置根据成像平面坐标与显示屏平面坐标的映射关系,将指尖的像素点转换为显示屏对应的坐标;(6)图像处理装置根据指尖坐标和指尖停留时间进行点击检测,若符合点击条件,则转换为相应的指令完成触摸操作;若不符合,则触摸操作未完成,采用卡尔曼滤波器对指尖点进行跟踪,预测下一帧图像指尖点位置;(7)在下一帧图像中以预测的指尖点为中心点划出感兴趣(ROI)区域进行步骤(4)肤色分割和指尖定位,不断循环直至触摸操作结束。上述方案中,步骤(4)中所述基于向量的实时指尖定位算法具体步骤如下:(a)确定邻域半径r的值:该邻域半径r的取值需大于手指在图像中的宽度、且小于手指在图像中的长度,即 finger . widthλimage . width screen . width cripts> r TM cripts/> TM cripts> finger . lengthλimage . length screen . length ]]>1上式中,finger.width和finger.length分别为手指的宽度和长度,image.width和image.length分别为图像宽和长的像素点数,screen.width和screen.length分别为触摸屏幕的宽度和长度;(b)计算人手区域轮廓闭合曲线S中各点的弯曲度,得到弯曲度的集合ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="447"/>其中人手区域轮廓闭合曲线S中的某一点Pi的弯曲度Ci为 ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>2上式中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="64"/>和ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="65"/>是点Pi的r领域集合ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="47"/>上的2个端点,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="281"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="131"/>和向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="100"/>的外积,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="150"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="132"/>的模;(c)在集合C中取|Ci|值最小且为正的元素,该元素所对应的点Pi即为指尖点;(d)设手指的宽度差阈值为常数d,在集合C中取出点Pi的邻域外符合条件ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="251"/>且为正的所有元素,得到新的集合Cr。(e)根据步骤(d)得到的结果,若在Cr对应的点集合中有连通集合,则保留连通集合中|Ci|值最小的点,去除其余的点;最后剩余的点即为所有手指的指尖点。上述方案中,步骤(a)中邻域半径r值取手指在图像中的宽度和长度的中间值。上述方案中,步骤(6)中所述采用卡尔曼滤波器对指尖点进行跟踪,预测下一帧图像指尖点位置的具体步骤为:采用ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="378"/>进行指尖位置的预测,在下一帧图像中以预测的指尖点为中心点划出ROI区域进行步骤(4)肤色分割和指尖定位,随后将获取的准确手指指尖坐标作为系统状态向量Zk,代入ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="568"/>进行滤波器校正,校正后再进行指尖位置的预测,不断循环直至触摸操作结束;上述两式中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="57"/>即为预测的状态向量,A为状态转移矩阵,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="82"/>为时刻k-1的系统状态向量,B为控制矩阵,Uk为控制向量,Xk为时刻k的系统状态向量,Kk为卡尔曼增益矩阵,Zk为时刻k的系统状态测量向量,H为观测矩阵。上述方案中,步骤(3)和(4)中所述肤色分割算法具体步骤如下:(a)在手指进入摄像区域前,水平摄像机和垂直摄像机首先存储若干图片并做灰度转换,随后计算其均值作为背景灰度图像,即 ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="599"/>3上式中,Gi为存储的第i张图片,n为存储的图片数量,Gbkimg为得到的背景灰度图像;(b)选择在YCbCr彩色空间上建立合适的肤色模型,对手指区域进行肤色分割;即(b.1)将水平摄像机和垂直摄像机或得的RGB图像转换为YCbCr图像,其中RGB空间到YCbCr空间的转换公式为: ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>4上式中,Y、Cb、Cr为YCbCr空间的亮度分量、蓝色色度分量、红色色度分量值;R、G、B为RGB空间的红色、绿色、蓝色分量值;ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="548"/>(b.2)利用式4中得到的Y分量与式3得到的背景灰度图像作差后,得到背景差分值D(x,y),即 ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>5上式中,Yftimg为前景图像的Y分量,D(x,y)为背景差分值;(b.3)根据式4和式5建立YCbCr彩色空间肤色检测模型为: ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>6上式中,Cb、Cr为YCbCr空间的蓝色色度分量、红色色度分量值;D为背景差分值;常数Min、Max为Cr与Cb比值的最大和最小阈值,常数T为背景差分阈值。该肤色检测模型通过设定Cr和Cb比值的最大和最小阈值以及背景差分阈值来判定肤色区域;当result为1时,表示该像素点为肤色区域;当result为0时,表示为非肤色区域。上述方案中,还进一步包括根据式7对背景进行自动更新的步骤, ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>7上式中,Iacc为更新后的背景图像,Iftimg为前景图像,α为更新常系数。一种基于计算机视觉技术的多点触摸屏系统装置,主要由显示屏、2个水平摄像机、1个垂直摄像机和图像处理装置组成;其中2个水平摄像机分别放置在显示屏的左右两端、并同时指向显示屏边框;垂直摄像机则放置在显示屏的前方、并指向显示屏且整个显示屏处于垂直摄像机的取景范围内;2个水平摄像机和1个垂直摄像机的输出端均与图像处理装置的输入端相连。上述图像处理装置包括系统标定模块、触摸判断模块、触摸控制点提取模块、坐标转换模块、点击检测模块和卡尔曼跟踪模块;其中2个水平摄像机的输出端与触摸判断模块的输入端相连;垂直摄像机的输出端和触摸判断模块的输出端分别连接触摸控制点提取模块的2个输入端;触摸控制点提取模块的输出端和系统标定模块的输出端分别连接坐标转换模块的2个输入端;坐标转换模块的输出端与点击检测模块的输出端相连;点击检测模块的输出端分为两路,一路经由卡尔曼跟踪模块接至触摸控制点提取模块的又一个输入端,另一路作为基于计算机视觉技术的多点触摸屏系统装置的输出端。上述方案中,所述触摸判断模块包括水平摄像机背景差分单元、水平摄像机肤色分割单元以及触摸判断单元;水平摄像机背景差分单元的输入端连接2个水平摄像机的输出端,水平摄像机背景差分单元的输出端经由水平摄像机肤色分割单元与触摸判断单元的输入端相连,触摸判断单元的输出端连接触摸控制点提取模块。上述方案中,所述触摸控制点提取模块包括垂直摄像机背景差分单元、垂直摄像机肤色分割单元以及指尖定位单元;垂直摄像机背景差分单元的输入端连接垂直摄像机的输出端,垂直摄像机背景差分单元的输出端经由垂直摄像机肤色分割单元与指尖定位单元的输入端相连,指尖定位单元的输出端连接坐标转换模块。与现有技术相比,本发明具有如下特点:1、利用计算机视觉技术解决了传统触摸屏存在的不足。由于摄像机的位置可随意调整,因此屏幕的尺寸易不受限制,只要显示屏在摄像头的视界范围内,都能够准确定位到指尖,可以应用在大尺寸显示屏上;2、图像处理装置可以是PC机或嵌入式装置,系统只需在现有设备基础上外加三组摄像机即可使普通显示屏具备触摸屏的功能,设计成本低;3、系统还可以用于投影屏幕等其他屏幕或者投影墙上,使用场合易于扩展,不受背景界面或环境的限制;4、系统通过算法改进可识别多个触点,适用于多点触控系统环境。
附图说明
图1为一种基于计算机视觉技术的多点触摸屏系统装置连线图;图2为一种基于计算机视觉技术的多点触摸屏系统装置内部模块结构示意图;图3为一种基于计算机视觉技术的多点触摸屏系统实现方法流程图;图4为指尖定位的轮廓模型。
具体实施方式
下面结合具体图示,进一步阐述本发明:参照图1,本发明一种基于计算机视觉技术的多点触摸屏系统装置由3组摄像机、1个图像处理装置和1个普通显示屏组成。图中的3组摄像机的输出端都接在图像处理装置上。在显示屏的左右两端各放置一组指向显示屏边框的水平摄像机,当手指进入摄像机取景范围时,可根据手指指尖与显示屏距离判断是否产生触摸。显示屏前方放置一组指向显示屏且整个显示屏处于其取景范围内的垂直摄像机,当产生触摸时,可根据该摄像机拍摄的图像获取指尖点位置,同时对手指进行跟踪。图像处理装置通过对摄像机采集的图像进行处理,得到指尖触摸点的位置和手指动作信息,转换为相应的指令完成触摸操作。图2为一种基于计算机视觉技术的多点触摸屏系统装置内部模块结构示意图。图中,图像处理装置包括系统标定模块、触摸判断模块、触摸控制点提取模块、坐标转换模块、点击检测模块以及卡尔曼跟踪模块。2个水平摄像机的输出端和触摸判断模块的输入端相连。垂直摄像机的输出端和触摸判断模块的输出端分别连接触摸控制点提取模块的2个输入端。触摸控制点提取模块的输出端和系统标定模块的输出端分别连接坐标转换模块的2个输入端。坐标转换模块的输出端与点击检测模块的输出端相连。点击检测模块的输出端分为两路,一路经由卡尔曼跟踪模块接至触摸控制点提取模块的又一个输入端,另一路作为基于计算机视觉技术的多点触摸屏系统装置的输出端。所述系统标定模块采用系统标定算法对垂直摄像机进行系统标定,获得摄像机成像平面坐标与显示屏坐标的映射关系。所述触摸判断模块包括水平摄像机背景差分单元、水平摄像机肤色分割单元以及触摸判断单元。水平摄像机背景差分单元的输入端连接2个水平摄像机的输出端,水平摄像机背景差分单元的输出端经由水平摄像机肤色分割单元与触摸判断单元的输入端相连,触摸判断单元的输出端连接触摸控制点提取模块。触摸判断模块通过上述各单元的内部算法处理2个水平摄像机获取的图片,根据手指指尖与显示屏边框的距离判断是否产生触摸。所述触摸控制点提取模块包括垂直摄像机背景差分单元、垂直摄像机肤色分割单元和指尖定位单元;垂直摄像机背景差分单元的输入端连接垂直摄像机的输出端,垂直摄像机背景差分单元的输出端经由垂直摄像机肤色分割单元与指尖定位单元的输入端相连,指尖定位单元的输出端连接坐标转换模块。所述触摸控制点提取模块通过上述各单元的内部算法处理垂直摄像机获取的图片,得到手指指尖的位置坐标作为触摸的控制点。所述坐标转换模块根据成像平面坐标与显示屏平面坐标的映射关系,将指尖的位置坐标转换为显示屏对应的坐标。所述点击检测模块根据指尖坐标和指尖停留时间进行点击检测,若符合点击条件,则转换为相应的指令完成触摸操作。所述卡尔曼跟踪模块采用卡尔曼滤波器对手指指尖点进行跟踪,预测下一帧图像指尖点的位置。采用上述装置所实现的一种基于计算机视觉技术的多点触摸屏系统实现方法流程图如图3所示,包括以下几个步骤:(1)对置于显示屏前方的垂直摄像机进行系统标定,获得摄像机成像平面坐标与显示屏平面坐标的映射关系。(2)启动2个水平摄像机,当手指进入摄像机取景范围后,采用背景差分法和肤色分割算法获取手指的轮廓,根据手指指尖与显示屏边框的距离判断是否产生触摸。(3)当产生触摸时,启动垂直摄像机,采用改进的背景差分法和肤色分割法获取手指的轮廓,并通过指尖定位算法实时准确地获取指尖的像素点。根据成像平面坐标与显示屏平面坐标的映射关系,将指尖的像素点转换为显示屏对应的坐标。(4)根据指尖坐标和指尖停留时间进行点击检测,若符合点击条件,则转换为相应的指令完成触摸操作。若不符合,则触摸操作未完成,采用卡尔曼滤波器对指尖点进行跟踪,预测下一帧图像指尖点位置。(5)在下一帧图像中以预测的指尖点为中心点划出ROI区域进行步骤(3)肤色分割和指尖定位,不断循环直至触摸操作结束。在系统中,图像处理算法包括系统标定、手指轮廓分割、指尖定位、手指跟踪等部分组成,下面将对系统涉及的图像处理算法进行描述。计算机视觉中,空间上某点的几何位置与其在摄像头采集到的图像上对应点的几何关系是由摄像头的成像模型决定的,对于成像模型参数的计算称为系统标定。通过系统标定,即可获得摄像机的成像平面与显示屏平面之间的映射关系。假设显示屏在世界坐标系Z=0的平面内,显示屏左上角为原点。图像平面内的一个像素点(u,v),对应显示屏的坐标点为(xw,yw),两个点有如下映射关系: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 其中,矩阵A为摄像机的内参数矩阵,可通过在3个不同位置获取的棋盘格标定板图像计算出来。[r1,r2,t]为摄像机外参数矩阵ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="191"/>的简化矩阵。本发明通过在显示屏上显示棋盘格图像,利用角点检测算法提取棋盘格的内角点作为对应点。这样,可以根据式(1)建立多组图像像素点与显示屏坐标点的方程,求出矩阵[r1,r2,t]。矩阵A[r1,r2,t]的逆矩阵即为摄像机的成像平面像素点到显示屏平面坐标点的转换矩阵。触控手指的有效分割与指尖定位是本发明的关键。本发明提出一种先使用背景差分法对前景的手指区域进行粗略提取,随后再使用肤色分割法对手指区域进一步分割的方法。该方法可去除背景中与肤色相近颜色的干扰,增强手指分割的有效性。在手指进入摄像区域前,先存储若干图片并做灰度转换,随后计算其均值作为背景灰度图像,如式(2)所示。 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,Gi为存储的第i张图片,n为存储的图片数量,Gbkimg为得到的背景灰度图像。根据在实际检测中的肤色分割效果,同时为了达到减少计算量的目的,选择在YCbCr彩色空间上建立合适的肤色模型,对手指区域进行肤色分割。RGB空间到YCbCr空间的转换公式如式(3)所示: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,Y、Cb、Cr为YCbCr空间的亮度分量、蓝色色度分量、红色色度分量值;R、G、B为RGB空间的红色、绿色、蓝色分量值;ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="548"/>利用式(3)得到的Y分量与式(2)得到的背景灰度图像作差后,得到图像的背景差分值D(x,y),如式(4)所示, ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 上式中,Yftimg为前景图像的Y分量,D(x,y)为背景差分值。根据式(3)和(4)建立YCbCr彩色空间肤色检测模型为: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 上式中,Cb、Cr为YCbCr空间的蓝色色度分量、红色色度分量值;D为背景差分值;常数Min、Max为Cr与Cb比值的最大和最小阈值,常数T为背景差分阈值。该肤色检测模型通过设定Cr和Cb比值的最大和最小阈值以及背景差分阈值来判定肤色区域。当result为1时,表示该像素点为肤色区域;当result为0时,表示为非肤色区域。若背景图像不会根据环境因素的变化而自动更新,长时间固定使用则会严重影响对前景目标的分割效果。因此还需要对背景进行自动更新,公式如式(5)所示。 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,Iacc为更新后的背景图像,Iftimg为前景图像。α为更新常系数。指尖是触摸屏的控制点,本发明提出一种基于向量的实时指尖定位算法,该算法根据轮廓曲线拐点对应相邻两个边界点向量的模最短的特性,快速准确判断出指尖点的位置。人手区域经轮廓的闭合边缘曲线S可被表述为一列有序点的集合: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 其中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="268"/>ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="268"/>ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="171"/>和ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="177"/>至少有一个值等于1。xi和yi是点Pi的横坐标和纵坐标。在曲线集合S上的点Pi取一个常数r为邻域半径,以点Pi为中心点取一个集合ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="700"/>该集合称为点Pi的r邻域,且ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="178"/>如果点Pk在点Pi的r邻域中,则称点Pk和点Pi是r邻接的。如果有一个集合V(Vxa0Txa0S),取其任意一点,都可在V中找到另一点与该点是r邻接,则称集合V是连通集合。根据欧几里得度量二维公式,向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="148"/>的模为: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 由曲线的特性可知,当曲线方向变化越剧烈,曲线越弯曲,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="161"/>的值越小,如图4所示。曲线拐点对应的ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="168"/>值最小。同时,可根据向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="148"/>和向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="113"/>的外积判断曲线在点Pi的凹凸性。容易验证,当向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="147"/>和向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="113"/>的外积大于0时,曲线在点Pi处是凸的;反之则是凹的。因此,可定义曲线在点Pi的弯曲度公式为: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="287"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="135"/>和向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="104"/>的外积,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="151"/>为向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="148"/>的模。根据人手轮廓形状特征可知,指尖是手指曲线中弧度变化最大的凸拐点,因此可根据曲线弯曲度公式求出各点弯曲度进行指尖点的判断。由于各个手指的宽度差别不大,可先利用单指尖检测的方法判断出其中宽度最小的手指指尖,随后再根据该指尖的弯曲度判断其它的手指指尖。指尖检测的步骤如下:(3.1)认为设定邻域半径r的值。邻域半径r影响着曲线弯曲度的计算。如果r取值太小,向量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="147"/>的模变化就不明显,难以判断拐点。如果r取值太大,超出了手指的长度,就容易出现错误的拐点。根据人手轮廓形状特征,邻域半径r的取值需大于手指在图像中的宽度,小于手指在图像中的长度,如式(9)所示: finger . widthλimage . width screen . width cripts> r TM cripts/> TM cripts> finger . lengthλimage . length screen . length - - - ( 9 ) ]]> 式中,finger.width和finger.length为手指的宽度和长度,image.width和image.length为图像宽和长的像素点数,screen.width和screen.length为触摸屏幕的宽度和长度。通常r值取手指在图像中的宽度和长度的中间值。(3.2)根据式(8)计算人手区域轮廓闭合曲线S中各点的弯曲度,得到弯曲度的集合ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="444"/>(3.3)在集合C中取|Ci|值最小且为正的元素,该元素所对应的点Pi即为指尖点。(3.4)设手指的宽度差阈值为常数d,在集合C中取出点Pi的邻域外符合条件ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="250"/>且为正的所有元素,得到新的集合Cr。(3.5)根据步骤(3.4)得到的结果,若在Cr对应的点集合中有连通集合,则保留连通集合中|Ci|值最小的点,去除其余的点。最后剩余的点即为所有手指的指尖点。手指指尖在每帧图像中的位置构成了目标运动的轨迹,本发明引入卡尔曼滤波器根据手指指尖的以往运动轨迹预测下一帧图像指尖可能出现的位置,实现手指跟踪。卡尔曼滤波器算法包含信号模型和观测模型两个模型,信号模型如式(10)所示,观测模型如式(11)所示。 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,Xk和ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="82"/>为时刻k和k-1的系统状态向量,Zk为时刻k的系统状态测量向量,A为状态转移矩阵,B为控制矩阵,H为观测矩阵,Uk为控制向量,wk和vk分别为正态分布的运动和测量噪声向量,且互不相关,即:P(w)~N(0,Q),P(v)~N(0,R)xa0xa0xa0xa0xa0xa0xa0(12)式中,Q为运动噪声的协方差矩阵,R为测量噪声的协方差矩阵。令系统状态向量Xk表示为[xk,vxk,yk,vyk]T,其中xk和yk分别是手指指尖像素点在图像x轴和y轴上的坐标分量,vxk和vyk分别是手指指尖像素点在图像x轴和y轴上的速度。系统状态向量Zk表示为[xk,yk]T,其中xk和yk分别是当前帧手指指尖像素点在图像x轴和y轴上的坐标分量。在x轴上,指尖坐标的运动方程如式(13)和式(14)所示: ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,t为时间变量,ak为k时刻的加速度。由于在跟踪过程中相邻两帧图像相关时间较短,可近似认为指尖坐标在x轴和y轴上运动均是一个由随机加速而被扰动的直线运动,加速度ak是一个随机量ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="337"/>同理在y轴上也有相似的方程。根据式(13)和式(14),可定义控制向量Uk为加速度ak,状态转移矩阵A和控制矩阵B为ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="393"/>ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="466"/>其中,常量τ为两帧图像相隔时间。卡尔曼滤波分为预测和校正两个阶段。在预测阶段,滤波器根据当前状态估计后来的随机模型状态,如式(15)和式(16)所示。 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="43"/>是先验误差相关矩阵,ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="71"/>是前一时刻的后验误差相关矩阵,Q为运动噪声的协方差矩阵。ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="57"/>即为预测的状态向量。在校正阶段,滤波器在给定模型状态的测量参数基础上,调节随机模型状态,如式(17)~(19)所示。 ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> ntent="drawing" img-format="tif" inline="no" orientation="portrait" wi="700"/> 式中,Kk为卡尔曼增益矩阵,Pk是当前时刻的后验误差相关矩阵。手指指尖跟踪过程中,采用式(15)进行指尖位置的预测,在下一帧图像中以预测的指尖点为中心点划出ROI区域进行肤色分割和指尖定位,随后将获取的准确手指指尖坐标作为系统状态向量Zk,代入式(18)进行滤波器校正。校正后再进行指尖位置的预测,不断循环直至触摸操作结束。加入卡尔曼滤波器对指尖跟踪可增强系统的实时性和鲁棒性。上述ROI区域即“感兴趣区域”,它以卡尔曼滤波器预测的指尖点为中心,在图像划出一个感兴趣区域,随后只对这帧图像区域内的数据进行图像处理,区域外的数据就不用管了,这样可以减少处理时间,增强实时性和鲁棒性。